//package com.fecean.aabbc.netty.client.prod4;
//
//import com.fecean.aabbc.netty.handler4.NettyResponseChannelHandler;
//import com.fecean.aabbc.netty.message4.MessageNotice;
//import com.fecean.aabbc.netty.message4.MessageRequest;
//import com.fecean.aabbc.netty.message4.MessageResponse;
//import com.fecean.aabbc.netty.message4.ResponseFuture;
//import io.netty.channel.Channel;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import java.time.Instant;
//import java.util.UUID;
//
///**
// * NettyClientSender
// *
// * @author: chenfenghai
// * @version: 1.0
// * @date: 2020-03-12 16:54
// * @blame Team
// */
//@Slf4j
//@Component
//public class NettyClientSender {
//
//    private Channel channel;
//
//    public void setChannel(Channel channel) {
//        this.channel = channel;
//    }
//
//    public void clear() {
//        this.channel = null;
//    }
//
//    /**
//     ** 发送通知
//     * @param tenantId 租户ID
//     * @param cinemaCode 影院编码
//     * @param content 消息内容
//     */
//    public void sendNotice(String tenantId, String cinemaCode, String content){
//        if(channel == null){
//            return;
//        }
//        MessageNotice notice = new MessageNotice();
//        notice.setId(UUID.randomUUID().toString());
//        notice.setTimestamp(Instant.now().toEpochMilli());
//        notice.setTenantId(tenantId);
//        notice.setCinemaCode(cinemaCode);
//        notice.setContent(content);
//        channel.writeAndFlush(notice);
//        log.info("客户端[{}-{}]发送通知：{}",
//                notice.getTenantId(), notice.getCinemaCode(), notice);
//    }
//
//    /**
//     ** 发送请求
//     * @param tenantId 租户ID
//     * @param cinemaCode 影院编码
//     * @param content 消息内容
//     */
//    public MessageResponse sendRequest(String tenantId, String cinemaCode, String content){
//        if(channel == null){
//            return null;
//        }
//        MessageRequest request = new MessageRequest();
//        request.setId(UUID.randomUUID().toString());
//        request.setTimestamp(Instant.now().toEpochMilli());
//        request.setTenantId(tenantId);
//        request.setCinemaCode(cinemaCode);
//        request.setContent(content);
//
//        ResponseFuture future = new ResponseFuture(channel, request);
//        channel.writeAndFlush(request);
//        log.info("客户端[{}-{}]发送请求：{}",
//                request.getTenantId(), request.getCinemaCode(), request);
//        // 等待获取响应结果
//        return future.get();
//    }
//}
